//
//  WLCountdownTask.m
//  ProjectforHDX
//
//  Created by HDX on 16/5/11.
//  Copyright © 2016年 H.DX. All rights reserved.
//

#import "WLCountdownTask.h"

@implementation WLCountdownTask

- (void)main {
    self.taskIdentifier =  [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^(void){
 
    }];
   [self StartTime];
 
   self.taskIdentifier = UIBackgroundTaskInvalid;
    
}
-(void)StartTime{
    
    //倒计时时间
    __block NSInteger timeOut = _leftTimeInterval;
    dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
    dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,0, 0, queue);
    //每秒执行一次
    dispatch_source_set_timer(_timer,dispatch_walltime(NULL,0), 1.0 * NSEC_PER_SEC,0);
    dispatch_source_set_event_handler(_timer, ^{
        
        
        
        //倒计时结束，关闭
        if (timeOut == 0) {
            dispatch_source_cancel(_timer);
            dispatch_async(dispatch_get_main_queue(), ^{
                if (_finishedBlcok) {
                    [[UIApplication sharedApplication] endBackgroundTask:self.taskIdentifier];
                    
                    
                    _finishedBlcok(0);
                }
            });
        } else {
            dispatch_async(dispatch_get_main_queue(), ^{
                timeOut--;
                if (_countingDownBlcok) _countingDownBlcok(timeOut);
            });
            
        }
    });
    dispatch_resume(_timer);
    
}

@end
